package cn.tedu.luban.order.main.dao;

import cn.tedu.luban.order.protocol.bo.OrderBO;
import cn.tedu.luban.order.protocol.dos.OrderDO;
import cn.tedu.luban.order.protocol.query.AdminOrderDBPagerQuery;
import cn.tedu.luban.order.protocol.query.FrontOrderDBPagerQuery;
import java.util.List;

public interface OrderDAO {
    Long countAdminOrders(AdminOrderDBPagerQuery query);

    List<OrderDO> queryAdminOrders(AdminOrderDBPagerQuery query);

    OrderDO getOrderById(Long id);

    void saveOrder(OrderDO aDo);

    OrderDO selectOrderByOrderNo(String no);

    void updateOrderStatusByOrderNo(OrderDO aDo);

    Long countFrontOrders(FrontOrderDBPagerQuery query);

    List<OrderDO> queryFrontOrders(FrontOrderDBPagerQuery query);

    Long updateOrderSignByOrderNo(OrderDO orderDO);

    Long updateOrderConfirmByOrderNo(OrderDO orderDO);

    Long updateOrderDelayByOrderNo(OrderDO orderDO);

    void updateOrderFinishByOrderNo(OrderDO orderDO);

    void updateOrderCompleteByOrderNo(OrderDO orderDO);
}
